package com.wicket.okrbff.biz.service.dto.common;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import javax.validation.constraints.NotNull;
import lombok.Data;
import com.wicket.okrbff.common.annotations.TreeType;
import java.util.Objects;
    
    
    /**
     * @desc BffResponsibleViewPointDto
     * @使用场景
     */
    @Data
    public class BffResponsibleViewPointDto  implements Serializable {
      
    /**
     * 指标ID 
     */
    @TreeType("id")
@ApiModelProperty("指标ID")
    private String	 objectiveId;

    /**
     * 指标标识 
     */
    @ApiModelProperty("指标标识")
    private String	 objectiveCode;

    /**
     * 是否末级指标 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否末级指标")
    private String	 isLastObjective;

    /**
     * 层级 
     */
    @ApiModelProperty("层级")
    private Long	 levelNumber;

    /**
     * 指标名称 
     */
    @ApiModelProperty("指标名称")
    private String	 objectiveName;

    /**
     * 指标简称 
     */
    @ApiModelProperty("指标简称")
    private String	 objectiveShortName;

    /**
     * 主体生命周期 CURRENTLY_VALID:当前有效 EDITING:正在编辑 ARCHIVING:历史存档
     */
    @ApiModelProperty("主体生命周期")
    private String	 subjectLifeCycle;
/**
     * 本级是否向下分工 TRUE:是 FALSE:否
     */
    @ApiModelProperty("本级是否向下分工")
    private String	 createLowerIndicator;
/**
     * 指标编号
     */
    @ApiModelProperty("指标编号")
    private String	 objectiveNumber;

    /**
     * 冗余目标ID
     */
    @ApiModelProperty("冗余目标ID")
    private String	 targetId;
/**
     * 是否用于一级部门 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否用于一级部门")
    private String	 isUseFirstDept;
/**
     * 冗余指标业务类型 NUMBER_GROWTH:数量增长型 NUMBER_DECLINE:数量降幅型 PERCENTAGE_GROWTH:百分比增长型 PERCENTAGE_DECLINE:百分比降幅型 PROGRESS:进度型 RATIO_GROWTH:比率增长型 RATIO_DECLINE:比率降幅型 SUBJECTIVE_QUALITATIVE:主观定性
     */
    @ApiModelProperty("冗余指标业务类型")
    private String	 targetValueType;
/**
     * 消息ID 
     */
    @ApiModelProperty("消息ID")
    private String	 messageId;

    /**
     * 是否已处理 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否已处理")
    private String	 isHandle;
/**
     * 排序 
     */
    @ApiModelProperty("排序")
    private Long	 orderNumber;

    /**
     * 部门排序 
     */
    @ApiModelProperty("部门排序")
    private Long	 dutyBodyOrderNum;

    /**
     * 个人排序 
     */
    @ApiModelProperty("个人排序")
    private Long	 personalOrderNumber;

    /**
     * 权重排序 
     */
    @ApiModelProperty("权重排序")
    private Long	 weightOrderNumber;

    /**
     * 创建时间 
     */
    @ApiModelProperty("创建时间")
    private Date	 createTime;

    /**
     * 操作时间 
     */
    @ApiModelProperty("操作时间")
    private Date	 operateTime;
@Override
  public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      if (!super.equals(o)) return false;
      BffResponsibleViewPointDto that = (BffResponsibleViewPointDto) o;
      return  objectiveId == that.objectiveId&&objectiveCode == that.objectiveCode&&isLastObjective == that.isLastObjective&&levelNumber == that.levelNumber&&objectiveName == that.objectiveName&&objectiveShortName == that.objectiveShortName&&subjectLifeCycle == that.subjectLifeCycle&&createLowerIndicator == that.createLowerIndicator&&objectiveNumber == that.objectiveNumber&&targetId == that.targetId&&isUseFirstDept == that.isUseFirstDept&&targetValueType == that.targetValueType&&messageId == that.messageId&&isHandle == that.isHandle&&orderNumber == that.orderNumber&&dutyBodyOrderNum == that.dutyBodyOrderNum&&personalOrderNumber == that.personalOrderNumber&&weightOrderNumber == that.weightOrderNumber&&createTime == that.createTime&&operateTime == that.operateTime;
    }
@Override
  public int hashCode() {
      return Objects.hash(super.hashCode(), objectiveId,objectiveCode,isLastObjective,levelNumber,objectiveName,objectiveShortName,subjectLifeCycle,createLowerIndicator,objectiveNumber,targetId,isUseFirstDept,targetValueType,messageId,isHandle,orderNumber,dutyBodyOrderNum,personalOrderNumber,weightOrderNumber,createTime,operateTime);
    }
    
      

    }
   